// Object.assign 方法
// 将多个源对象中的属性赋值到一个目标对象中
const source1 = {
    a: 123,
    b: 123,
};
const source2 = {
    c: 123,
};
// 目标对象
const target = {
    a: 456,
    d: 456,
};
// 返回的结果和目标对象一致(会改变目标对象)
const result = Object.assign(target, source1, source2);
console.log(result === target); // true
console.log(target); // { a: 123, d: 456, b: 123, c: 123 }

// 函数内部修改对象的值,将源对象的属性放到一个空对像中,修改不会影响源对象
function fn(obj) {
    const fnObj = Object.assign({}, obj);
    fnObj.name = "fn obj";
    console.log(fnObj); // { name: 'fn obj' }
}
const obj = { name: "jack" };
fn(obj);
console.log(obj); // { name: 'jack' }
